#include "wx/wxprec.h"

#ifdef __BORLANDC__
#pragma hdrstop
#endif

#ifndef WX_PRECOMP
#include "wx/wx.h"
#endif

#if !wxUSE_DOC_VIEW_ARCHITECTURE
#error You must set wxUSE_DOC_VIEW_ARCHITECTURE to 1 in setup.h!
#endif

#include "GBBig5Table.h"

wxChar gb2big5[] = 
{
	21574,29507,
	30011,30059,
	19985,37276,
	28096,28593,
	33539,31684,
	20016,35920,
	21518,24460,
	20249,22821,
	23004,34193,
	24088,31806,
	20313,39192,
	37057,39729,
	24895,39000,
	20113,38642,
	31569,31689,
	20934,28310,
	21378,24288,
	24191,24291,
	36767,38370,
	21035,21029,
	20914,27798,
	31181,31278,
	34411,34802,
	25285,25812,
	20826,40680,
	26007,39717,
	20799,20818,
	24178,20094,
	26588,27331,
	21010,21123,
	22351,22750,
	20960,24190,
	20215,20729,
	25454,25818,
	21367,25458,
	36866,36969,
	34593,34847,
	33098,33240,
	20040,40637,
	19975,33836,
	23425,23527,
	26420,27192,
	33529,34315,
	20166,20693,
	30830,30906,
	32988,21213,
	26415,34899,
	20307,39636,
	28034,22615,
	21494,33865,
	20323,20653,
	19982,33287,
	24449,24501,
	24694,24801,
	21457,30332,
	22797,24489,
	27719,21295,
	33719,29554,
	39269,39138,
	23613,30433,
	21382,27511,
	21348,28407,
	24357,24396,
	31614,31805,
	32420,32406,
	33487,34311,
	22363,22727,
	22242,22296,
	39035,38920,
	33039,33247,
	38047,37912,
	33647,34277,
	24403,30070,
	21514,24340,
	34164,34314,
	32447,32218,
	20026,28858,
	20135,29986,
	20247,30526,
	20266,20605,
	20971,40167,
	21397,24257,
	21551,21855,
	22681,29254,
	22771,27580,
	22870,29518,
	22955,23215,
	24182,20006,
	24405,37636,
	24747,24872,
	26497,26997,
	27817,28296,
	30232,30266,
	30839,40572,
	31446,35918,
	32477,32085,
	32483,32353,
	32486,32091,
	32497,32212,
	32503,32179,
	32511,32160,
	32560,38849,
	33511,33486,
	33724,33939,
	35828,35498,
	35875,35616,
	35883,35710,
	36163,36115,
	36173,40782,
	36189,36119,
	37213,37278,
	37319,25505,
	38057,37476,
	38069,32573,
	38152,37561,
	38160,37555,
	38184,26484,
	38220,37931,
	38242,38017,
	38405,38321,
	39059,38969,
	39068,38991,
	39554,32629,
	40071,39920,
	40094,39895,
	40132,40055,
	40481,38622,
	40538,40383,
	33633,30442,
	38180,37656,
	14278,14351,
	14047,65533,
	19987,23560,
	19994,26989,
	19995,21474,
	19996,26481,
	19997,32114,
	20002,19999,
	20004,20841,
	20005,22196,
	20007,21930,
	20010,20491,
	20020,33256,
	20029,40599,
	20030,33289,
	20041,32681,
	20044,28879,
	20048,27138,
	20052,21932,
	20064,32722,
	20065,37129,
	20070,26360,
	20080,36023,
	20081,20098,
	20105,29229,
	20110,26044,
	20111,34407,
	20122,20126,
	20137,30045,
	20146,35242,
	20149,35131,
	20152,22194,
	20159,20740,
	20165,20677,
	20174,24478,
	20177,20374,
	20179,20489,
	20202,20736,
	20204,20497,
	20248,20778,
	20250,26371,
	20251,20660,
	20254,20632,
	20255,20553,
	20256,20659,
	20259,20436,
	20260,20663,
	20261,20480,
	20262,20523,
	20263,20630,
	20267,20295,
	20325,20681,
	20384,20448,
	20387,20406,
	20389,20709,
	20390,20597,
	20391,20596,
	20392,20689,
	20393,20744,
	20394,20757,
	20396,20738,
	20451,20417,
	20454,20756,
	20456,20796,
	20457,20486,
	20458,20791,
	20459,20488,
	20461,20745,
	20538,20661,
	20542,20670,
	20588,20655,
	20603,20674,
	20606,20712,
	20607,20767,
	20645,20795,
	20647,20752,
	20648,20786,
	20649,20794,
	13417,20792,
	20817,20812,
	20822,20823,
	20848,34349,
	20851,38364,
	20852,33288,
	20857,33586,
	20859,39178,
	20861,29560,
	20865,22213,
	20869,20839,
	20872,23713,
	20876,20874,
	20889,23531,
	20891,36557,
	20892,36786,
	20911,39342,
	20915,27770,
	20917,27841,
	20923,20941,
	20928,20936,
	20937,28092,
	20943,28187,
	20945,28234,
	20955,20956,
	20964,40179,
	20973,24977,
	20975,20977,
	20987,25802,
	20991,38015,
	21005,33467,
	21016,21129,
	21017,21063,
	21018,21083,
	21019,21109,
	21024,21034,
	21036,21079,
	21037,21060,
	21049,21070,
	21053,21130,
	21055,21132,
	21056,21108,
	21058,21137,
	21072,21102,
	21073,21133,
	21093,21085,
	21095,21127,
	13541,21135,
	13577,21146,
	21149,21240,
	21150,36774,
	21153,21209,
	21154,21233,
	21160,21205,
	21169,21237,
	21170,21185,
	21171,21214,
	21183,21218,
	21195,21211,
	21210,21225,
	21248,21243,
	21286,21293,
	21294,21297,
	21306,21312,
	21307,37291,
	21326,33775,
	21327,21332,
	21333,21934,
	21334,36067,
	21346,30439,
	21355,34907,
	21364,21371,
	21381,24307,
	21385,21426,
	21387,22739,
	21388,21421,
	21389,21401,
	21392,40846,
	21400,37328,
	21410,24258,
	21411,21428,
	21414,24264,
	21416,24282,
	21417,24260,
	21422,24285,
	21439,32291,
	21441,21444,
	21442,21443,
	21452,38617,
	21464,35722,
	21465,25944,
	21472,30090,
	21495,34399,
	21497,22022,
	21501,22064,
	21523,22151,
	21525,21570,
	21527,21966,
	21539,21786,
	21544,22136,
	21548,32893,
	21556,21555,
	21584,21558,
	21586,22072,
	21587,22216,
	21589,22036,
	21590,22182,
	21591,21764,
	21592,21729,
	21593,21692,
	21595,21958,
	21596,21978,
	21647,35424,
	21657,22184,
	21659,22144,
	21661,22109,
	21668,21522,
	21709,38911,
	21713,21854,
	21714,22112,
	21715,22069,
	21716,22006,
	21717,22118,
	21719,22057,
	21721,22130,
	21724,22156,
	21725,22117,
	21727,21938,
	21787,22044,
	21789,21962,
	21792,22062,
	21793,21858,
	21794,21993,
	21796,21914,
	21863,22038,
	21868,21959,
	21869,22208,
	21870,22169,
	21876,22077,
	21880,22063,
	13726,21902,
	21943,22132,
	21949,22029,
	21950,22195,
	21995,22209,
	22003,22127,
	22040,22099,
	22052,22198,
	22065,22225,
	13706,22106,
	22108,22165,
	22179,22210,
	22253,22290,
	22257,22250,
	22260,22285,
	22261,22279,
	22269,22283,
	22270,22294,
	22278,22291,
	22307,32854,
	22329,22745,
	22330,22580,
	22338,38442,
	22359,22602,
	22362,22533,
	22364,22754,
	22365,22761,
	22366,22626,
	22367,22707,
	22368,22684,
	22404,22751,
	22405,22752,
	22406,22746,
	22418,22744,
	22438,22718,
	22441,22538,
	22443,22666,
	22445,22497,
	22449,22731,
	22450,22607,
	22452,22550,
	22488,22610,
	22489,22628,
	22490,22557,
	22511,22453,
	22545,22649,
	22549,22702,
	22766,22767,
	22768,32882,
	22774,22778,
	22776,22780,
	22788,34389,
	22791,20633,
	22815,22816,
	22836,38957,
	22840,35463,
	22841,22846,
	22842,22890,
	22849,22889,
	22850,22864,
	22859,22894,
	22885,22887,
	22904,23014,
	22918,22941,
	22919,23142,
	22920,23229,
	22953,23285,
	22954,23255,
	22999,22989,
	23033,22908,
	23044,23105,
	23045,23149,
	23046,23304,
	23047,23308,
	23048,23372,
	23089,23067,
	23090,23207,
	23092,23291,
	23155,23295,
	23156,23344,
	23157,23307,
	23158,23352,
	23210,23228,
	23250,23329,
	23252,23338,
	23281,23321,
	23351,23332,
	23385,23403,
	23398,23416,
	23402,23423,
	23453,23542,
	23454,23526,
	23456,23541,
	23457,23529,
	23466,25010,
	23467,23470,
	23485,23532,
	23486,36051,
	23517,23522,
	23545,23565,
	23547,23563,
	23548,23566,
	23551,22781,
	23558,23559,
	23572,29246,
	23576,22645,
	23581,22039,
	23591,22575,
	23604,23607,
	23608,23629,
	23618,23652,
	23619,23635,
	23625,23644,
	23626,23622,
	23646,23660,
	23649,23650,
	23654,23656,
	23679,23996,
	23681,27506,
	23682,35912,
	23702,23943,
	23703,23831,
	23704,23796,
	23705,23988,
	23706,23888,
	23707,23798,
	23725,23994,
	23741,23852,
	23743,24011,
	23748,23975,
	23777,23805,
	23779,23970,
	23780,23968,
	23781,23842,
	23782,24018,
	23810,23959,
	23811,23821,
	23812,23982,
	23853,23940,
	23896,23992,
	23898,23956,
	23901,23937,
	24005,24020,
	24041,38799,
	24047,24048,
	24065,24163,
	24069,24101,
	24072,24107,
	24079,24131,
	24080,24115,
	24092,24159,
	24102,24118,
	24103,24128,
	24110,24171,
	24113,24172,
	24123,24152,
	24124,24151,
	24130,20906,
	24196,33674,
	24198,24950,
	24208,24300,
	24209,24289,
	24211,24235,
	24212,25033,
	24217,24287,
	24222,40848,
	24223,24290,
	24298,24297,
	24320,38283,
	24322,30064,
	24323,26820,
	24337,24338,
	24352,24373,
	24362,24371,
	24367,24398,
	24377,24392,
	24378,24375,
	24402,27512,
	24413,24414,
	24422,24421,
	24443,24505,
	24452,24465,
	24469,24480,
	24518,25014,
	24527,25082,
	24551,24962,
	24574,24894,
	24576,25079,
	24577,24907,
	24578,24939,
	24579,25006,
	24580,24938,
	24581,24757,
	24582,24884,
	24604,24976,
	24635,32317,
	24636,25055,
	24639,25036,
	24651,25088,
	24658,24646,
	24691,25031,
	24696,24927,
	24697,25064,
	24698,24887,
	24699,24827,
	24700,24817,
	24701,24818,
	24742,24709,
	24748,25080,
	24749,24947,
	24750,24734,
	24751,25003,
	24778,39514,
	24807,25084,
	24808,24920,
	24809,25074,
	24811,24970,
	24812,24860,
	24813,24922,
	24814,24986,
	24815,24931,
	24864,24909,
	24868,24996,
	24870,24978,
	24913,25086,
	25041,25059,
	25042,25078,
	25044,25037,
	25094,25095,
	25099,25108,
	25103,25138,
	25111,25127,
	25112,25136,
	25132,25129,
	25135,25137,
	25143,25142,
	25169,25778,
	25191,22519,
	25193,25844,
	25194,25451,
	25195,25475,
	25196,25562,
	25200,25854,
	25242,25771,
	25243,25291,
	25247,25718,
	25248,25715,
	25249,25476,
	25250,25654,
	25252,35703,
	25253,22577,
	25311,25836,
	25314,25871,
	25315,25536,
	25317,25793,
	25318,25876,
	25319,25840,
	25320,25765,
	25321,25799,
	25346,25499,
	25370,25711,
	25371,25891,
	25372,25495,
	25373,25790,
	25374,25787,
	25375,25406,
	25376,25747,
	25377,25803,
	25378,25759,
	25379,25497,
	25380,25824,
	25381,25582,
	25382,25743,
	25405,36627,
	25437,25385,
	25438,25736,
	25439,25613,
	25441,25791,
	25442,25563,
	25443,25623,
	25523,25796,
	25524,25681,
	25527,25842,
	25528,25763,
	25530,25723,
	25532,25692,
	25597,25900,
	25598,25653,
	25599,25779,
	25600,25881,
	25601,25841,
	25602,25695,
	25605,25898,
	25658,25884,
	25668,25885,
	25669,25860,
	25670,25850,
	25671,25622,
	25672,25839,
	25674,25892,
	25732,25878,
	25745,25744,
	14801,25757,
	25781,25862,
	25783,25847,
	25784,25852,
	25786,25883,
	14815,25811,
	25822,25851,
	25874,25890,
	25932,25973,
	25947,25986,
	25968,25976,
	25995,40779,
	26003,26005,
	26025,26028,
	26029,26039,
	26080,28961,
	26087,33290,
	26102,26178,
	26103,26336,
	26104,26264,
	26137,26311,
	26172,26205,
	26173,26344,
	26174,39023,
	26187,26185,
	26194,26348,
	26195,26313,
	26196,26308,
	26197,26248,
	26198,26249,
	26242,26283,
	26279,26326,
	26426,27231,
	26432,27578,
	26434,38620,
	26435,27402,
	26438,26751,
	26465,26781,
	26469,20358,
	26472,26954,
	26473,27050,
	26480,20625,
	26500,27083,
	26526,27141,
	26530,27166,
	26531,26839,
	26533,27370,
	26535,26776,
	26536,26838,
	26538,27085,
	26539,26963,
	26541,26783,
	26592,27320,
	26621,27273,
	26624,26772,
	26629,26613,
	26631,27161,
	26632,26855,
	26633,27355,
	26634,27379,
	26635,26847,
	26636,27368,
	26638,27359,
	26639,27396,
	26641,27193,
	26646,26866,
	26647,24900,
	26679,27171,
	26686,27410,
	26720,26895,
	26721,27208,
	26722,26984,
	26723,27284,
	26724,27071,
	26725,27211,
	26726,27194,
	26727,27292,
	26728,27123,
	26729,27137,
	26790,22818,
	26812,27310,
	26814,26870,
	26815,27108,
	26816,27298,
	26817,26802,
	26818,27422,
	26881,27112,
	26911,27357,
	26912,27111,
	26916,27407,
	26925,27234,
	27004,27155,
	27012,27414,
	27013,27058,
	27015,27372,
	27016,27354,
	27017,27384,
	27098,27295,
	27099,27323,
	27103,27315,
	27104,27367,
	27178,27243,
	27183,27299,
	27185,27387,
	27237,27371,
	27249,27365,
	27257,27347,
	27260,27358,
	27305,27265,
	27426,27489,
	27428,27487,
	27431,27472,
	27516,27570,
	27521,27519,
	27527,27556,
	27531,27544,
	27538,27550,
	27539,27566,
	27546,27563,
	27553,27567,
	15470,27560,
	15465,27568,
	27572,27590,
	27585,27584,
	27586,36674,
	27605,30050,
	27609,25987,
	27617,27656,
	27637,27647,
	27655,27660,
	27668,27683,
	27682,27691,
	27689,27692,
	27698,27699,
	27721,28450,
	27748,28271,
	27769,27958,
	27807,28317,
	27809,27794,
	27811,28739,
	27812,28442,
	27813,28701,
	27814,28138,
	27815,28356,
	27818,28396,
	27870,28632,
	27880,35387,
	27882,28122,
	27894,28585,
	27895,28711,
	27896,28696,
	27898,28668,
	27899,28681,
	27900,28497,
	27901,28580,
	27902,28039,
	27905,28500,
	27922,28753,
	27964,31402,
	27971,28025,
	27973,28154,
	27974,28479,
	27975,28550,
	27976,28254,
	27978,28609,
	27979,28204,
	27981,28590,
	27982,28639,
	27983,28687,
	27984,28411,
	27985,28222,
	27986,28408,
	27987,28611,
	27988,28527,
	28059,28644,
	28061,28551,
	28062,28150,
	28063,28451,
	28064,28543,
	28065,28198,
	28067,28185,
	28068,28364,
	28070,28516,
	28071,28567,
	28072,28466,
	28073,28544,
	28170,28149,
	28172,28133,
	28173,28460,
	28174,28678,
	28176,28472,
	28177,28576,
	28180,28417,
	28182,28683,
	28183,28402,
	28201,28331,
	28286,28771,
	28287,28629,
	28291,28528,
	28293,28666,
	28294,28469,
	28375,28535,
	28378,28414,
	28382,28399,
	28383,28775,
	28384,28740,
	28385,28415,
	28386,28677,
	28388,28670,
	28389,28651,
	28390,28772,
	28392,28657,
	28393,28760,
	28394,28582,
	28452,28768,
	28486,28704,
	28487,28703,
	28491,28722,
	28493,28656,
	28508,28507,
	28532,28710,
	28572,28734,
	28625,28712,
	28626,28693,
	15551,28679,
	28751,28765,
	28781,28357,
	28783,29128,
	28789,38728,
	28790,31432,
	28798,28797,
	28799,29158,
	28800,29036,
	28809,29200,
	28822,29129,
	28828,29010,
	28829,29079,
	28857,40670,
	28860,29001,
	28861,29118,
	28865,29197,
	28866,29211,
	28867,28916,
	28891,29165,
	28895,29017,
	28902,29033,
	28903,29138,
	28904,29121,
	28905,29172,
	28907,29145,
	28908,29180,
	28909,29105,
	28949,29029,
	28950,29148,
	28952,29182,
	15805,29041,
	29044,29061,
	15798,29174,
	29233,24859,
	29239,29242,
	29261,29272,
	29286,27650,
	29301,29309,
	29306,29351,
	29322,29346,
	29366,29376,
	29367,29559,
	29368,29505,
	29369,29494,
	29384,29437,
	29405,29550,
	29406,29552,
	29420,29544,
	29421,29433,
	29422,29509,
	29423,29546,
	29424,29465,
	29425,29508,
	29426,29499,
	29443,29547,
	29454,29557,
	29461,29564,
	29473,29568,
	29482,35948,
	29483,35987,
	29484,34655,
	29486,29563,
	29549,29562,
	16013,29553,
	29585,29859,
	29594,29778,
	29595,29802,
	29614,29771,
	29615,29872,
	29616,29694,
	29617,29810,
	29626,29885,
	29648,29754,
	29649,29903,
	29680,29867,
	29682,29759,
	29711,29833,
	29712,29795,
	29756,29898,
	29814,29796,
	29815,29862,
	29838,29908,
	29906,29914,
	29935,29964,
	30005,38651,
	30021,26274,
	30068,30087,
	30102,30308,
	30103,30274,
	30111,30247,
	30112,30296,
	30113,30221,
	30124,30311,
	30125,30258,
	30126,30241,
	30127,30219,
	30129,30384,
	30132,30206,
	30152,30320,
	30153,30169,
	30162,30306,
	30166,30210,
	30184,30278,
	30186,30227,
	30187,30279,
	30213,30281,
	30214,30254,
	30231,30238,
	30250,30303,
	30251,30321,
	30270,30318,
	30271,30317,
	30302,30313,
	30307,30316,
	30315,30322,
	30353,30362,
	30385,30394,
	30386,30392,
	30415,30430,
	30416,40573,
	30417,30435,
	30422,33995,
	30423,30428,
	30424,30436,
	30477,30616,
	30502,30501,
	30508,30675,
	30528,33879,
	30529,30556,
	30544,30558,
	30545,30652,
	30598,30646,
	30610,30622,
	16470,30620,
	30633,30682,
	30699,30703,
	30710,30959,
	30718,31020,
	30719,31014,
	30720,30893,
	30721,30908,
	30742,30938,
	30743,30824,
	30746,30831,
	30748,30904,
	30778,31018,
	30779,31025,
	30782,31019,
	30784,30990,
	30785,30812,
	30805,30889,
	30806,30820,
	30807,30973,
	30809,30929,
	30861,31001,
	30875,30951,
	30876,30947,
	30897,40572,
	31036,31150,
	31043,31137,
	31054,31125,
	31074,31152,
	31087,31118,
	31095,31153,
	31096,31117,
	31104,31263,
	31108,31103,
	31109,31146,
	31163,38626,
	31171,31167,
	31174,31240,
	31215,31309,
	31216,31281,
	31229,31330,
	31230,31328,
	31238,31341,
	31246,31237,
	16713,31247,
	31267,31308,
	31283,31337,
	31313,31329,
	31351,31406,
	31363,31434,
	31373,31429,
	31374,31413,
	31377,31407,
	31388,31428,
	31389,31401,
	31397,31418,
	31398,31431,
	31405,31414,
	31454,31478,
	31491,31716,
	31499,31565,
	31508,31558,
	31509,31591,
	31546,31627,
	31548,31840,
	31550,31849,
	31578,31731,
	31579,31721,
	31580,31801,
	31581,31631,
	16882,31604,
	31609,31820,
	31612,31700,
	31616,31777,
	31635,31833,
	31654,31744,
	31655,31691,
	31656,31836,
	31657,31854,
	31658,31774,
	31659,31787,
	31697,31779,
	31699,31757,
	31726,31811,
	31729,31852,
	31766,31850,
	31809,31839,
	31860,31988,
	31867,39006,
	31868,31176,
	31900,31990,
	31901,31986,
	31908,31925,
	31914,31966,
	31918,31975,
	31937,31965,
	31943,39217,
	32039,32202,
	17207,32044,
	17209,32069,
	32119,32310,
	17212,32144,
	17213,32181,
	17208,32307,
	17217,32376,
	17216,32383,
	32415,31993,
	32416,31998,
	32417,32006,
	32418,32005,
	32419,32002,
	32421,32007,
	32422,32004,
	32423,32026,
	32424,32008,
	32425,32394,
	32426,32000,
	32427,32009,
	32428,32239,
	32429,32028,
	32430,32024,
	32431,32020,
	32432,32021,
	32433,32023,
	32434,32177,
	32435,32013,
	32436,32029,
	32437,32305,
	32438,32184,
	32439,32027,
	32440,32025,
	32441,32011,
	32442,32033,
	32443,32053,
	32444,32022,
	32445,32016,
	32446,32019,
	32448,32058,
	32449,32050,
	32450,32049,
	32451,32244,
	32452,32068,
	32453,32051,
	32454,32048,
	32455,32340,
	32456,32066,
	32457,32272,
	32458,32070,
	32459,32060,
	32460,32064,
	32461,32057,
	32462,32377,
	32463,32147,
	32464,32063,
	32465,32129,
	32466,32104,
	32467,32080,
	32468,32093,
	32469,32350,
	32470,32112,
	32471,32078,
	32472,32362,
	32473,32102,
	32474,32098,
	32475,32115,
	32476,32097,
	32478,32094,
	32479,32113,
	32480,32134,
	32481,32131,
	32482,32121,
	32484,32140,
	32485,32143,
	32487,32380,
	32488,32136,
	32489,32318,
	32490,32210,
	32491,32190,
	32492,32211,
	32493,32396,
	32494,32186,
	32495,32203,
	32496,32189,
	32498,32196,
	32499,32361,
	32500,32173,
	32501,32191,
	32502,32172,
	32504,32162,
	32505,32175,
	32506,32185,
	32507,32163,
	32508,32156,
	32509,32187,
	32510,32176,
	32512,32180,
	32513,32199,
	32514,32217,
	32515,32215,
	32516,32216,
	32517,32236,
	32518,32412,
	32519,32249,
	32520,32242,
	32521,32221,
	32522,32277,
	32523,32354,
	32524,32230,
	32525,32158,
	32526,32222,
	32527,32246,
	32529,32241,
	32530,32267,
	32531,32233,
	32532,32224,
	32533,32311,
	32534,32232,
	32535,32225,
	32536,32227,
	32537,32265,
	32538,32283,
	32539,32287,
	32540,32285,
	32541,32299,
	32542,32279,
	32543,32286,
	32544,32399,
	32545,32301,
	32546,32266,
	32547,32273,
	32548,32381,
	32549,32313,
	32550,32309,
	32551,32306,
	32552,32403,
	32553,32302,
	32554,32326,
	32555,32325,
	32556,32392,
	32557,32346,
	32558,32341,
	32559,32338,
	32561,32382,
	32562,32368,
	32563,32367,
	32564,32371,
	32565,32408,
	32578,32588,
	32593,32178,
	32599,32645,
	32602,32624,
	32610,32631,
	32628,32646,
	32641,32648,
	32671,32677,
	32728,32761,
	32802,32814,
	32807,32812,
	32824,32883,
	32827,24677,
	32834,32886,
	32843,32894,
	32844,32887,
	32845,32889,
	32852,32879,
	32873,32885,
	32874,32880,
	32899,32901,
	32928,33144,
	32932,33178,
	32942,39599,
	32948,39194,
	32958,33102,
	32959,33131,
	32960,33081,
	32961,33029,
	32966,33213,
	32999,26407,
	33000,33110,
	33002,33242,
	33003,33051,
	33014,33184,
	33033,33032,
	33037,33214,
	33040,33229,
	33041,33126,
	33043,33215,
	33044,33248,
	33050,33139,
	33073,33067,
	33078,33121,
	33080,33225,
	33133,40822,
	33147,33193,
	33148,38758,
	33149,33155,
	33150,39472,
	33169,33231,
	33244,33250,
	33286,36671,
	33315,33380,
	33328,33382,
	33329,33369,
	33339,33387,
	33392,33393,
	33395,33399,
	33402,34269,
	33410,31680,
	33416,32651,
	33431,34188,
	33436,34154,
	33446,34310,
	33473,34031,
	33479,33894,
	33480,34294,
	33483,33703,
	33484,33799,
	33485,33980,
	33486,33511,
	33550,33686,
	33551,34338,
	33553,34086,
	33556,22603,
	33557,29026,
	33575,32365,
	33606,33610,
	33616,34214,
	33625,34200,
	33626,33698,
	33627,34136,
	33628,34045,
	33630,34126,
	33631,34184,
	33632,34234,
	33635,27054,
	33636,33911,
	33637,28366,
	33638,29334,
	33639,29074,
	33640,34113,
	33641,34254,
	33642,33984,
	33643,34093,
	33644,34130,
	33645,33874,
	33646,33892,
	33669,33950,
	33713,33802,
	33714,34030,
	33715,33940,
	33716,33845,
	33718,34207,
	33720,34133,
	33721,29801,
	33722,40367,
	33821,34367,
	33828,34722,
	33829,29151,
	33830,32264,
	33831,34157,
	33832,34217,
	33905,34085,
	33927,34118,
	33929,34146,
	33931,34083,
	33932,34078,
	34013,34253,
	34015,34186,
	34016,34362,
	34019,34167,
	34021,37795,
	34022,39488,
	34050,34374,
	34103,34196,
	34105,34334,
	34106,34298,
	34108,34297,
	34160,34176,
	34162,34308,
	34222,34282,
	17621,34227,
	34259,34330,
	34326,27377,
	34383,34396,
	34385,24942,
	34394,34395,
	34412,34415,
	34414,34787,
	34429,38614,
	34430,34662,
	34431,34822,
	34432,34645,
	34433,34811,
	34434,34718,
	34453,34870,
	34476,34566,
	34506,34865,
	34510,34851,
	34511,34806,
	34542,34875,
	34544,34756,
	34545,34554,
	34546,34799,
	34547,34692,
	34548,34832,
	34581,34555,
	34583,34680,
	34631,34821,
	34632,34760,
	34633,34796,
	34684,34747,
	34686,34833,
	34688,34751,
	34728,34766,
	17878,34734,
	34767,34856,
	34885,37313,
	34900,37532,
	34917,35036,
	34924,35183,
	34926,34974,
	34948,35158,
	34949,35018,
	34950,35096,
	34972,35178,
	34989,35186,
	34991,35151,
	35013,35037,
	35014,35168,
	35016,35084,
	35042,35123,
	35043,35165,
	35044,35122,
	35045,35143,
	35099,35128,
	35124,35172,
	18003,35180,
	35265,35211,
	35266,35264,
	35267,35214,
	35268,35215,
	35269,35219,
	35270,35222,
	35271,35224,
	35272,35261,
	35273,35258,
	35274,35244,
	35275,35233,
	35276,35263,
	35277,35237,
	35278,35238,
	35279,35247,
	35280,35250,
	35281,35255,
	35294,35316,
	35302,35320,
	35311,35318,
	35354,35518,
	18211,35362,
	35465,35709,
	35466,35588,
	18215,35653,
	35744,35329,
	35745,35336,
	35746,35330,
	35747,35331,
	35748,35469,
	35749,35663,
	35750,35344,
	35751,35340,
	35752,35342,
	35753,35731,
	35754,35349,
	35755,35350,
	35756,35351,
	35757,35347,
	35758,35696,
	35759,35338,
	35760,35352,
	35761,35346,
	35762,35611,
	35763,35569,
	35764,35635,
	35765,35406,
	35766,35357,
	35767,35365,
	35768,35377,
	35769,35355,
	35770,35542,
	35771,35369,
	35772,35359,
	35773,35575,
	35774,35373,
	35775,35370,
	35776,35363,
	35777,35657,
	35778,35393,
	35779,35382,
	35780,35413,
	35781,35419,
	35782,35672,
	35783,35415,
	35784,35408,
	35785,35380,
	35786,35386,
	35787,35398,
	35788,35589,
	35789,35422,
	35790,35416,
	35791,35412,
	35792,35414,
	35793,35695,
	35794,35410,
	35795,35462,
	35796,35460,
	35797,35430,
	35798,35455,
	35799,35433,
	35800,35440,
	35801,35452,
	35802,35488,
	35803,35461,
	35804,35445,
	35805,35441,
	35806,35477,
	35807,35436,
	35808,35438,
	35809,35437,
	35810,35426,
	35811,35427,
	35812,35533,
	35813,35442,
	35814,35443,
	35815,35435,
	35816,35554,
	35817,35425,
	35818,35704,
	35819,35489,
	35820,35491,
	35821,35486,
	35822,35482,
	35823,35492,
	35824,35493,
	35825,35480,
	35826,35496,
	35827,35473,
	35829,35494,
	35830,35474,
	35831,35531,
	35832,35576,
	35833,35535,
	35834,35582,
	35835,35712,
	35836,35537,
	35837,35513,
	35838,35506,
	35839,35529,
	35840,35547,
	35841,35504,
	35842,35543,
	35843,35519,
	35844,35522,
	35845,35538,
	35846,35524,
	35847,35510,
	35848,35527,
	35850,35516,
	35851,35584,
	35852,35574,
	35853,35548,
	35854,35594,
	35855,35563,
	35856,35559,
	35857,35604,
	35858,35585,
	35859,35586,
	35860,35556,
	35861,35565,
	35862,35580,
	35863,35730,
	35864,35566,
	35865,35571,
	35866,35578,
	35867,35558,
	35868,35598,
	35869,35550,
	35870,35549,
	35871,35624,
	35872,35740,
	35873,35606,
	35874,35613,
	35876,35607,
	35877,35610,
	35878,35609,
	35879,35600,
	35880,35641,
	35881,35646,
	35882,35627,
	35884,35628,
	35885,35674,
	35886,35670,
	35887,35673,
	35888,35733,
	35889,35676,
	35890,35662,
	35891,35742,
	35892,35700,
	35893,35691,
	35894,35734,
	35950,35958,
	18265,35993,
	18320,36080,
	36125,35997,
	36126,35998,
	36127,36000,
	36128,35999,
	36129,36002,
	36130,36001,
	36131,36012,
	36132,36066,
	36133,25943,
	36134,36076,
	36135,36008,
	36136,36074,
	36137,36009,
	36138,36010,
	36139,36007,
	36140,36022,
	36141,36092,
	36142,36015,
	36143,36011,
	36144,36019,
	36145,36068,
	36146,36033,
	36147,36016,
	36148,36028,
	36149,36020,
	36150,36026,
	36151,36024,
	36152,36031,
	36153,36027,
	36154,36032,
	36155,36029,
	36156,36042,
	36157,36100,
	36158,36040,
	36159,36036,
	36160,36018,
	36161,36035,
	36162,36034,
	36164,36039,
	36165,36037,
	36166,36112,
	36167,36053,
	36168,36049,
	36169,36058,
	36170,36050,
	36171,36070,
	36172,36077,
	36174,36118,
	36175,36062,
	36176,36060,
	36177,36116,
	36178,36057,
	36179,36065,
	36180,36064,
	36181,36071,
	36182,36084,
	36183,36085,
	36184,36101,
	36185,36091,
	36186,36090,
	36187,36093,
	36188,36094,
	36190,36106,
	36191,36103,
	36192,36104,
	36193,36109,
	36194,36111,
	36195,36123,
	36202,36204,
	36213,36249,
	36214,36245,
	36235,36264,
	36273,36274,
	36280,36489,
	36291,36493,
	36292,36428,
	36318,36498,
	36341,36368,
	36342,36482,
	36343,36474,
	36344,36437,
	36345,36506,
	36347,36491,
	36362,36404,
	36364,36490,
	36394,36452,
	36396,36499,
	36399,36497,
	36433,36513,
	36434,36451,
	36464,36501,
	36479,36517,
	36495,36522,
	36508,36518,
	36527,36544,
	36710,36554,
	36711,36555,
	36712,36556,
	36713,36562,
	36714,36561,
	36715,36564,
	36716,36681,
	36717,36571,
	36718,36650,
	36719,36575,
	36720,36703,
	36721,36594,
	36722,36603,
	36723,36708,
	36724,36600,
	36725,36601,
	36726,36604,
	36727,36580,
	36728,36587,
	36729,36706,
	36730,36602,
	36731,36629,
	36732,36606,
	36733,36617,
	36734,36618,
	36735,36686,
	36736,36616,
	36737,36615,
	36738,36613,
	36739,36611,
	36740,36626,
	36741,36628,
	36742,36635,
	36743,36646,
	36744,36649,
	36745,36637,
	36746,36645,
	36747,36638,
	36748,36652,
	36749,36639,
	36750,36636,
	36751,36659,
	36752,36667,
	36753,36655,
	36754,36672,
	36755,36664,
	36756,36705,
	36757,36677,
	36758,36676,
	36759,36670,
	36760,36678,
	36761,36685,
	36762,36692,
	36766,36781,
	36777,36783,
	36779,36782,
	36793,37002,
	36797,36988,
	36798,36948,
	36801,36983,
	36807,36942,
	36808,36993,
	36816,36939,
	36824,36996,
	36825,36889,
	36827,36914,
	36828,36960,
	36829,36949,
	36830,36899,
	36831,36978,
	36841,36999,
	36851,36885,
	36857,36321,
	36873,36984,
	36874,36956,
	36882,36958,
	36902,37008,
	36923,37007,
	36951,36986,
	36965,36953,
	37011,37159,
	37021,37178,
	37036,37140,
	37038,37109,
	37049,37138,
	37050,37172,
	37051,37168,
	37071,37087,
	37072,37174,
	37073,37165,
	37075,37126,
	37094,37192,
	37095,37142,
	37112,37170,
	37186,37191,
	37222,37297,
	37233,37292,
	37245,37317,
	37246,37315,
	37247,37312,
	37322,37323,
	37492,37970,
	37550,38014,
	37694,37864,
	38021,37330,
	38022,37331,
	38023,37332,
	38024,37341,
	38025,37336,
	38026,37335,
	38027,37337,
	38028,37333,
	38029,37367,
	38030,37370,
	38031,37351,
	38032,37348,
	38033,37394,
	38034,37353,
	38035,37347,
	38036,37702,
	38037,37369,
	38038,37722,
	38039,37365,
	38040,37379,
	38041,37411,
	38042,37384,
	38043,37414,
	38044,37445,
	38045,37389,
	38046,37396,
	38048,37385,
	38049,37575,
	38050,37628,
	38051,37393,
	38052,37392,
	38053,38000,
	38054,27453,
	38055,37406,
	38056,37794,
	38058,37415,
	38059,37377,
	38060,37413,
	38061,37380,
	38062,37397,
	38063,37376,
	38064,37434,
	38065,37666,
	38066,37478,
	38067,37463,
	38068,37431,
	38070,37427,
	38071,37461,
	38072,37437,
	38073,37432,
	38074,37470,
	38075,38013,
	38076,37484,
	38077,37485,
	38078,37440,
	38079,37439,
	38080,37438,
	38081,37941,
	38082,37457,
	38083,37428,
	38084,37984,
	38085,37467,
	38086,37466,
	38087,37451,
	38088,37424,
	38089,37449,
	38090,37448,
	38091,37453,
	38092,37422,
	38093,37433,
	38094,37944,
	38095,37494,
	38096,37548,
	38097,37536,
	38098,37498,
	38099,37609,
	38100,37647,
	38101,37546,
	38102,37614,
	38103,37583,
	38104,37603,
	38105,37891,
	38106,37517,
	38107,37946,
	38108,37509,
	38109,37569,
	38110,37553,
	38111,37542,
	38112,37799,
	38113,37720,
	38114,37526,
	38115,37521,
	38116,37580,
	38117,37545,
	38118,37531,
	38119,37877,
	38120,37523,
	38121,37801,
	38122,37503,
	38123,37530,
	38124,37499,
	38125,37528,
	38126,37658,
	38127,37547,
	38128,37496,
	38129,37541,
	38130,37855,
	38131,37507,
	38132,37899,
	38133,37544,
	38134,37504,
	38135,37539,
	38136,37956,
	38137,37906,
	38138,37610,
	38139,37593,
	38140,37688,
	38141,37617,
	38142,37832,
	38143,37847,
	38144,37559,
	38145,37782,
	38146,37616,
	38147,37605,
	38148,37604,
	38149,37707,
	38150,37615,
	38151,37608,
	38153,37564,
	38154,37597,
	38155,37586,
	38156,37573,
	38157,37622,
	38158,37926,
	38159,37927,
	38161,37563,
	38162,37571,
	38163,37599,
	38164,37606,
	38165,37650,
	38166,37638,
	38167,37754,
	38168,37737,
	38169,37679,
	38170,37672,
	38171,37659,
	38172,37665,
	38173,37696,
	38174,37633,
	38175,37653,
	38176,37673,
	38177,37675,
	38178,37678,
	38179,38012,
	38181,37648,
	38182,37670,
	38183,37973,
	38185,37640,
	38186,37699,
	38187,37639,
	38188,37663,
	38189,37664,
	38190,37749,
	38191,37624,
	38192,37683,
	38193,37657,
	38194,37733,
	38195,37704,
	38196,37703,
	38197,37848,
	38198,37750,
	38199,37716,
	38200,37732,
	38201,37740,
	38202,37758,
	38203,37723,
	38204,37802,
	38205,37728,
	38206,37744,
	38207,37764,
	38208,37709,
	38209,37762,
	38210,37860,
	38211,37793,
	38212,37928,
	38213,37767,
	38214,37836,
	38215,37806,
	38216,37787,
	38217,37784,
	38218,38007,
	38219,37810,
	38221,37811,
	38222,37823,
	38223,37798,
	38224,37804,
	38225,37770,
	38226,37808,
	38227,37813,
	38228,37964,
	38229,37780,
	38230,37858,
	38231,37852,
	38232,37853,
	38233,37837,
	38234,37872,
	38235,37854,
	38236,37857,
	38237,37841,
	38238,37827,
	38239,37831,
	38240,37840,
	38241,37908,
	38243,37904,
	38244,37879,
	38245,37989,
	38246,37907,
	38247,37997,
	38248,37920,
	38249,38009,
	38250,37881,
	38251,37913,
	38252,37962,
	38253,37939,
	38254,37942,
	38255,37938,
	38256,37934,
	38257,37951,
	38258,37972,
	38259,37987,
	38260,37982,
	38261,38001,
	38262,38002,
	38271,38263,
	38376,38272,
	38377,38274,
	38378,38275,
	38379,38278,
	38380,38280,
	38381,38281,
	38382,21839,
	38383,38358,
	38384,38287,
	38385,38344,
	38386,38289,
	38387,38286,
	38388,38291,
	38389,38292,
	38390,38284,
	38391,24758,
	38392,38296,
	38393,39719,
	38394,38312,
	38395,32862,
	38396,38373,
	38397,38313,
	38398,38317,
	38399,38355,
	38400,38309,
	38401,38307,
	38402,38305,
	38403,38315,
	38404,39726,
	38406,38316,
	38407,38349,
	38408,38334,
	38409,38329,
	38410,38326,
	38411,39721,
	38412,38335,
	38413,38333,
	38414,38331,
	38415,38332,
	38416,38369,
	38417,38348,
	38418,38339,
	38419,38368,
	38420,38346,
	38421,38347,
	38422,38356,
	38423,38352,
	38424,38354,
	38425,38357,
	38426,38366,
	38427,38372,
	38431,38538,
	38451,38525,
	38452,38512,
	38453,38499,
	38454,38542,
	38469,38555,
	38470,38520,
	38471,38580,
	38472,38515,
	38473,38488,
	38485,38493,
	38503,38537,
	38504,38549,
	38505,38570,
	38543,38568,
	38544,38577,
	38582,38584,
	38589,38603,
	38590,38627,
	38607,38619,
	38624,35726,
	38643,38722,
	38654,38695,
	38657,38717,
	38689,38690,
	38701,38724,
	38739,38746,
	38745,38748,
	38757,38760,
	19012,38758,
	38801,38851,
	38802,38845,
	38831,38857,
	38886,38859,
	38887,38860,
	38888,38861,
	38889,38867,
	38890,38873,
	38891,38878,
	38892,38876,
	38901,38907,
	39029,38913,
	39030,38914,
	39031,38915,
	39032,38919,
	39033,38917,
	39034,38918,
	39036,38922,
	39037,38929,
	39038,39015,
	39039,38931,
	39040,38926,
	39041,38930,
	39042,38924,
	39043,38927,
	39044,38928,
	39045,39025,
	39046,38936,
	39047,38935,
	39048,38968,
	39049,38945,
	39050,38960,
	39051,38962,
	39052,38940,
	39053,28481,
	39054,29106,
	39055,38950,
	39056,38948,
	39057,38971,
	39058,38958,
	39060,38967,
	39061,38964,
	39062,31310,
	39063,38982,
	39064,38988,
	39065,38994,
	39066,38990,
	39067,38995,
	39069,38989,
	39070,39027,
	39071,39010,
	39072,39003,
	39073,39001,
	39074,39013,
	39076,39019,
	39077,39020,
	39078,39024,
	39079,39028,
	39118,39080,
	39119,39098,
	39120,39085,
	39121,39086,
	39122,39087,
	39123,39094,
	39124,39096,
	39125,39100,
	39126,39099,
	39127,39104,
	39128,39108,
	39129,39110,
	39130,39112,
	39134,39131,
	39144,39255,
	39181,39260,
	39267,39136,
	39268,39139,
	39270,39141,
	39271,39219,
	39272,39145,
	39273,39228,
	39274,39146,
	39275,39147,
	39276,39149,
	39277,39151,
	39278,39154,
	39279,39198,
	39280,39166,
	39281,39165,
	39282,39164,
	39283,39167,
	39284,39156,
	39285,39180,
	39286,39250,
	39287,39177,
	39288,39172,
	39289,39182,
	39290,39171,
	39291,39183,
	39292,39173,
	39293,39185,
	39294,39190,
	39295,39187,
	39296,39192,
	39297,39186,
	39298,39189,
	39299,39196,
	39300,39195,
	39301,39201,
	39302,39208,
	39303,39223,
	39304,39243,
	39305,39222,
	39306,39231,
	39307,39262,
	39308,39233,
	39309,39235,
	39310,39226,
	39311,39230,
	39312,39240,
	39313,39241,
	39314,39237,
	39315,39242,
	39316,39244,
	39317,39266,
	19396,39463,
	39532,39340,
	39533,39341,
	39534,39345,
	39535,39348,
	39536,39347,
	39537,39493,
	39538,39353,
	39539,39361,
	39540,39522,
	39541,39380,
	39542,39387,
	39543,39391,
	39544,39385,
	39545,39378,
	39546,39478,
	39547,39376,
	39548,39389,
	39549,39377,
	39550,39381,
	39551,39515,
	39552,39384,
	39553,39501,
	39555,39408,
	39556,39509,
	39557,39498,
	39558,39409,
	39559,39405,
	39560,39394,
	39561,39531,
	39562,39530,
	39563,39425,
	39564,39511,
	39565,39426,
	39566,39416,
	39567,39423,
	39568,39439,
	39569,39438,
	39570,39437,
	39571,39429,
	39572,39436,
	39573,39500,
	39574,39490,
	39575,39449,
	39576,39469,
	39577,39460,
	39578,39479,
	39579,39446,
	39580,39489,
	39581,39470,
	39582,39467,
	39583,39480,
	39584,39491,
	39585,39486,
	39586,39492,
	39587,39503,
	39588,39519,
	39589,39525,
	39590,39526,
	39591,39524,
	39621,39631,
	39627,39638,
	39628,39637,
	39699,39714,
	39751,39768,
	39753,39758,
	40060,39770,
	40061,39771,
	40062,39778,
	40063,39799,
	40064,39784,
	40065,39791,
	40066,39796,
	40067,19518,
	40068,39802,
	40069,39809,
	40070,39811,
	40072,40056,
	40073,39819,
	40074,39827,
	40075,39826,
	40076,39818,
	40077,39825,
	40078,40031,
	40079,39821,
	40080,39824,
	40081,39853,
	40082,39834,
	40083,39859,
	40084,39850,
	40085,39838,
	40086,39846,
	40087,39938,
	40088,39836,
	40089,40032,
	40090,40045,
	40091,39851,
	40092,39854,
	40093,39866,
	40095,40024,
	40096,39873,
	40097,40058,
	40098,39985,
	40099,39993,
	40100,39881,
	40101,39971,
	40102,39991,
	40103,39872,
	40104,39882,
	40105,39879,
	40106,39862,
	40107,39933,
	40108,39890,
	40109,39894,
	40110,39914,
	40111,39893,
	40112,39915,
	40113,39905,
	40114,39908,
	40115,39911,
	40116,39901,
	40117,39906,
	40118,39920,
	40119,39899,
	40120,39912,
	40121,39994,
	40122,39924,
	40123,39892,
	40124,40029,
	40125,39944,
	40126,39951,
	40127,40040,
	40128,39927,
	40129,39982,
	40130,39939,
	40131,39955,
	40133,39949,
	40134,39954,
	40135,39945,
	40136,39937,
	40137,40002,
	40138,39935,
	40139,39968,
	40140,39986,
	40141,39981,
	40142,39976,
	40143,39973,
	40144,39977,
	40145,39967,
	40146,39964,
	40147,39987,
	40148,39998,
	40149,40008,
	40150,40009,
	40151,39995,
	40152,39989,
	40153,40005,
	40154,19585,
	40155,39996,
	40156,40022,
	40157,40020,
	40158,40023,
	40159,40018,
	40160,40047,
	40161,40036,
	40162,40039,
	40163,40035,
	19731,40190,
	19733,40247,
	19732,40257,
	19734,40324,
	19735,40362,
	19736,40392,
	19737,40447,
	15753,40450,
	40479,40165,
	40480,40169,
	40482,40182,
	40483,40180,
	40484,40178,
	40485,40407,
	40486,40201,
	40487,40364,
	40488,40199,
	40489,40198,
	40490,40227,
	40491,40327,
	40492,40469,
	40493,40232,
	40494,40222,
	40495,40230,
	40496,40210,
	40497,40223,
	40498,40221,
	40499,40219,
	40500,40445,
	40501,40213,
	40502,40421,
	40503,40409,
	40504,40239,
	40505,40240,
	40506,40258,
	40507,40244,
	40508,40259,
	40509,40255,
	40510,40478,
	40511,40251,
	40512,40272,
	40513,40275,
	40514,40477,
	40515,40273,
	40516,40288,
	40517,40285,
	40518,40274,
	40519,40435,
	40520,40284,
	40521,40289,
	40522,40306,
	40523,40339,
	40524,40298,
	40525,40318,
	40526,40303,
	40527,40300,
	40528,40302,
	40529,40329,
	40530,40330,
	40531,40311,
	40532,40427,
	40533,40344,
	40534,40353,
	40535,40346,
	40536,40379,
	40537,40342,
	40539,40357,
	40540,40361,
	40541,40394,
	40542,40386,
	40543,40370,
	40544,40377,
	40545,40378,
	40546,40385,
	40547,40380,
	40548,40372,
	40549,40406,
	40550,40474,
	40551,40403,
	40552,40410,
	40553,40431,
	40554,40422,
	40555,40434,
	40556,40440,
	40557,40442,
	40559,40455,
	40560,40441,
	40561,40460,
	40562,40463,
	40563,40475,
	40564,40472,
	40574,40570,
	40614,40613,
	40632,40617,
	40644,40643,
	40649,40652,
	40673,40694,
	40681,40695,
	40682,40690,
	40702,40701,
	40715,40703,
	40717,40713,
	40727,38784,
	40761,40756,
	40784,40778,
	40785,40783,
	40831,40786,
	40832,40788,
	40833,40789,
	40834,40791,
	40835,40799,
	40836,40801,
	40837,40793,
	40838,40800,
	40839,40796,
	40840,40806,
	40841,40812,
	40842,40810,
	40843,40818,
	40844,40823,
	40857,40845,
	40858,40852,
	40859,40853,
	40863,40860,
	27784,28683,
	21010,30059,
	38047,37758,
	20120,20121,
	24067,20296,
	39296,20313,
	24182,20341,
	31995,20418,
	23478,20642,
	20266,20702,
	23613,20760,
	20982,20807,
	20811,21067,
	21397,21408,
	21551,21843,
	24694,22081,
	24403,22137,
	21693,22181,
	21521,22190,
	33487,22220,
	37319,22512,
	20898,22618,
	22681,22715,
	65533,22728,
	22870,22892,
	22955,23296,
	23731,23997,
	24178,24185,
	20040,24186,
	21035,24390,
	27719,24409,
	24747,24932,
	33945,25054,
	33293,25448,
	25240,25722,
	21382,26310,
	21521,26319,
	26415,26414,
	21488,27311,
	22771,27579,
	27745,27737,
	20932,28114,
	20928,28136,
	20940,28137,
	27817,28505,
	27780,28560,
	33945,28635,
	24357,28720,
	28435,28757,
	20026,29234,
	20135,29987,
	30011,30069,
	30232,30267,
	30151,30309,
	26479,30403,
	22256,30543,
	20102,30637,
	33945,30663,
	26417,30787,
	30839,30982,
	24481,31142,
	35895,31296,
	33719,31339,
	31446,31466,
	31614,31830,
	21505,31858,
	22242,31984,
	32477,32118,
	32483,32137,
	32447,32171,
	32511,32209,
	33268,32251,
	32486,32295,
	32420,32308,
	32503,32323,
	31995,32363,
	32560,32366,
	32047,32397,
	25165,32404,
	22363,32584,
	21351,33253,
	21488,33274,
	33647,33903,
	33724,34036,
	21340,34068,
	33464,34131,
	33633,34153,
	33511,34228,
	20511,34249,
	34164,34292,
	20247,34886,
	34065,34890,
	21516,34901,
	32993,34906,
	20914,34909,
	21482,34937,
	37324,35023,
	37324,35041,
	21046,35069,
	22797,35079,
	22797,35206,
	24535,35468,
	35828,35500,
	35875,35617,
	35883,35629,
	20167,35726,
	36173,36075,
	36189,36107,
	36163,36124,
	22238,36852,
	21608,36913,
	28216,36938,
	37213,37270,
	38057,37390,
	38069,37474,
	38160,37613,
	24405,37682,
	34920,37686,
	38184,37697,
	38180,37786,
	65533,37789,
	38220,37816,
	38152,37885,
	38242,37917,
	26059,38239,
	21512,38308,
	38405,38322,
	26495,38342,
	21482,38587,
	32497,38813,
	31179,38822,
	21315,38854,
	39059,38973,
	39068,38996,
	21488,39089,
	21038,39091,
	39269,39249,
	39554,39393,
	33039,39634,
	21457,39662,
	26494,39686,
	32993,39693,
	39035,39706,
	40071,39822,
	40094,39837,
	40132,39952,
	20971,40172,
	40538,40384,
	40481,40388,
	21348,40565,
	21688,40569,
	26354,40623,
	38754,40629,
	20040,40636,
	38665,40692,
	20908,40725,
	20986,40803,
	28287,28348,
	32541,32360,
};

int gb2big5TableSize = sizeof(gb2big5) / sizeof(wxChar);

bool mapping_initialized = false;

WX_DECLARE_HASH_MAP( wxInt32, wxInt32, wxIntegerHash, wxIntegerEqual, CInt2IntMap);

CInt2IntMap big52gb_mapping;
CInt2IntMap gb2big5_mapping;

void InitializeMapping(void)
{
	if (mapping_initialized) return;

	big52gb_mapping.clear();
	gb2big5_mapping.clear();

	for(int i=0;i<gb2big5TableSize;i+=2)
	{
		big52gb_mapping[gb2big5[i + 1]] = gb2big5[i];
		gb2big5_mapping[gb2big5[i]] = gb2big5[i + 1];
	}

	mapping_initialized = true;
}

wxChar TranslateChar(const wxChar & ch, bool to_gb)
{
	if (!mapping_initialized)
		InitializeMapping();

#if wxUSE_UNICODE
	if (to_gb)
	{
		CInt2IntMap::const_iterator it = big52gb_mapping.find(ch);

		if (it != big52gb_mapping.end())
			return it->second;
	}
	else
	{
		CInt2IntMap::const_iterator it = gb2big5_mapping.find(ch);

		if (it != gb2big5_mapping.end())
			return it->second;
	}

	return ch;
#else
	return ch;
#endif
}